package com.link.base.base.sms.service;


import com.link.base.sms.model.Temparameter;
import com.link.base.base.sms.model.PushSms;
import com.link.core.basic.service.BasicService;

import java.util.List;

/**
 * 发各种场景送短信方法 service
 * @author 朱泊阳
 * @date 2018/11/5
 *
 */

public interface PushSmsService extends BasicService<PushSms> {
    /**
     * 一天扫描一次，发送短信
     * @Author: liulu
     * @Date:14:20 2018/11/5
     * @param  * @param null
     */

    public void oneDayPushSendSms();
    /**
     * 发送优惠卷短信
     * @Author: liulu
     * @Date:14:18 2018/11/5
     * @param  prizeType
     * @param  accoutId 客户ID
     * @param  discountCouponname 优惠券名
     * @param  url 链接
     * @param  corpid
     */

    public void pullDiscountCouponSendSms(String prizeType, Long accoutId, String discountCouponname, String url, Long corpid);

    /**
     * 提交订单发送短信
     * @Author:LiuLu
     * @Date:16:32 2018/5/17
     * @param acctId 客户id
     * @param acctName 客户名称
     * @param shopName 门店名称
     * @param orderMoney 总金额
     * @param saleOrderId
     */

    public void submitOrderSendSms(Long acctId, String acctName, String shopName, String orderMoney, Long saleOrderId);

    /**
     * 订单发货发送短信
     * @Author:LiuLu
     * @Date:16:32 2018/5/17
     * @param acctId 客户id
     * @param acctName 客户名称
     * @param shopName 门店名称
     * @param saleOrderId
     */

    public void orderDeliverySendSms(Long acctId, String acctName, String shopName, Long saleOrderId);

    /**
     * 完成订单发送短信
     * @Author:LiuLu
     * @Date:16:32 2018/5/17
     * @param acctId 客户id
     * @param acctName 客户名称
     * @param shopName 门店名称
     * @param saleOrderId
     */

    public void finalizeOrderSendSms(Long acctId, String acctName, String shopName, Long saleOrderId);

    /**
     * 取消订单发送短信
     * @Author:LiuLu
     * @Date:16:32 2018/5/17
     * @param acctId 客户id
     * @param acctName 客户名称
     * @param shopName 门店名称
     * @param saleOrderId
     */
    public void cancelOrderSendSms(Long acctId, String acctName, String shopName, Long saleOrderId);

    /**
     * DESC:【场景通知】发送消息公共方法
     *
     * @param acctId 客户id
     * @param temparameter 参数列表
     * @param objId  发送消息对象的did
     * @param type   场景通知类型
     * @author: xubowen
     * @return: void
     * @date: 2019-04-17 10:05
     */
    public void sceneNotificationSendSms(Long acctId, Temparameter temparameter, Long objId, String type) throws Exception;


    /**
     * 根据type,获取消息通知信息
     * @author 闫有霞
     * @date 2018/12/12
     * @param type 推送模板信息的场景类型
     * @return 返回查询到的消息推送信息
     * @throws Exception 异常信息
     */
    public PushSms queryPushSmsByType(String type) throws Exception;

    /**
     * 根据场景名称查询
     *
     * @author guguishan
     * @date   2019/9/4 10:40
     */
    PushSms queryByTitle(String sceneName) throws Exception;

    /**
     * 根据场景信息发送短信方法
     *
     * @author 朱泊阳
     * @date   2019/10/12 10:40
     */
    public void setPushSmsWithTmp(List<Object> objects, List<String> phones, PushSms pushSms) throws Exception;
}
